home *** CD-ROM | disk | FTP | other *** search
- #ifndef lint
- static char rcsid[] = "$Header: traps.c,v 1.2 87/02/12 11:11:36 schoch Exp $";
- #endif
-
- #include "externs.h"
- #include <signal.h>
-
- trap_sigint ()
- {
- int y, x;
- char c;
-
- signal (SIGINT, SIG_IGN);
- getyx (stdscr, y, x);
- overwrite (stdscr, backupscreen);
- overwrite (win [PROMPT], backupwin[PROMPT]);
- overwrite (win [MESSAGE], backupwin[MESSAGE]);
- overwrite (win [INPUT], backupwin[INPUT]);
- overwrite (blankscreen, stdscr);
- wclear (win [PROMPT]);
- wclear (win [MESSAGE]);
- wclear (win [INPUT]);
- waddstr (win [PROMPT], "Quit?");
- waddstr (win [MESSAGE], "type y or n");
- waddstr (win [INPUT], ": ");
- move (win [INPUT]->_cury + win [INPUT]->_begy,
- win [INPUT]->_curx + win [INPUT]->_begx);
- refresh ();
- c = getchar();
- while (c!='n' && c!='N' && c!='y' && c!='Y') {
- if (c == '\f') /* ^L */
- refresh ();
- c = getchar();
- }
- if (c == 'y') {
- if (out)
- fputs("resign\r\n", out);
- error ((char *) NULL);
- }
- overwrite (backupscreen, stdscr);
- overwrite (backupwin [PROMPT], win [PROMPT]);
- overwrite (backupwin [MESSAGE], win [MESSAGE]);
- overwrite (backupwin [INPUT], win [INPUT]);
- move (y, x);
- touchwin (stdscr);
- redraw ();
- signal (SIGINT, trap_sigint);
- }
-